package es;

import java.io.BufferedWriter;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.OutputStreamWriter;
import java.io.Writer;
import java.util.ArrayList;

import modelo.Constantes;

public class GeneradorSalida {
	
	public static void GenerarArchivoSalida(String rutaArchivoSalida, ArrayList<String> listaSalida) {

		Writer archivoSalida = null;

		try {
			archivoSalida = new BufferedWriter(new OutputStreamWriter(new FileOutputStream(rutaArchivoSalida), Constantes.encodingSalida));

			if (!listaSalida.isEmpty()) {
				for (String lineaSalida : listaSalida) {
					archivoSalida.write(lineaSalida);
					archivoSalida.write(System.getProperty("line.separator"));
				}
				archivoSalida.write(System.getProperty("line.separator"));
			} else {
				
				archivoSalida.write("No hay registros.");
				archivoSalida.write(System.getProperty("line.separator"));
			}
		    
		} catch (IOException e) {
			System.err.println("Error de entrada/salida, no se pudo escribir el contenido del archivo de salida `" + rutaArchivoSalida +  "'.");
			System.exit(Constantes.EXIT_FAILURE);
		} finally {
		   try { 
			   archivoSalida.close();
		   } catch (Exception e) {
			   System.err.println("Error de entrada/salida, no se pudo cerrar el archivo de salida `" + rutaArchivoSalida +  "'.");
			   System.exit(Constantes.EXIT_FAILURE);
		   }
		}		
		
	}
	
}
